package com.nowcoder.面试必刷101;

import java.util.Arrays;

/**
 * @Description:
 * @author： yeswater
 * @create： 2024/6/13
 */

public class BM96 {
	public static void main(String[] args) {
		int n = 2;
		int[][] startEnd = {{1, 3}, {2, 4},{5,6}, {5,7}, {6,7}};
		System.out.println(minmumNumberOfHost(2, startEnd));
	}
	
	/**
	 * 计算成功举办活动需要多少名主持人
	 *
	 * @param n        int整型 有n个活动
	 * @param startEnd int整型二维数组 startEnd[i][0]用于表示第i个活动的开始时间，startEnd[i][1]表示第i个活动的结束时间
	 * @return int整型
	 */
	static public int minmumNumberOfHost(int n, int[][] startEnd) {
		int[] start = new int[n];
		int[] end = new int[n];
		
		// 分别得到活动起止时间
		for(int i=0; i< startEnd.length; i++){
			start[i] = startEnd[i][0];
			end[i] = startEnd[i][1];
		}
		
		// 单独排序
		Arrays.sort(start);
		Arrays.sort(end);
		
		int res = 0;
		int j=0;
		for(int i=0; i<n; i++){
			// 新开始时间 > 大一轮结束时间 主持人不变
			if(start[i] >= end[j]){
				j++;
			} else {
				// 主持人增加
				res++;
			}
		}
		return res;
	}
		
}
